package com.gzsxy.esjy.service.product.dao;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.gzsxy.esjy.service.base.dto.response.ProductRsp;
import com.gzsxy.esjy.service.product.entity.Product;
import com.gzsxy.esjy.service.product.entity.vo.ApiProductQueryVo;
import com.gzsxy.esjy.service.product.entity.vo.CommentQueryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author xiaolong
 * @version 1.0
 * @description: TODO
 * @date 2022/1/10 22:26
 */
@Repository
public interface ProductMapper extends BaseMapper<Product> {
    /**
     * @description: 用户列表组装
     * @param
     * @return
     */
    IPage<ProductRsp> selectPageByProductQueryVo(
            //mp会自动组装分页参数
            IPage<?> pageParam,
            //mp会自动组装queryWrapper：
            //@Param(Constants.WRAPPER) 和 xml文件中的 ${ew.customSqlSegment} 对应
            @Param(Constants.WRAPPER) QueryWrapper<Product> wrapper);

    /**
     * @description: 条件查询
     * @param
     * @return
     */
    List<Product> selectList1(
            //@Param(Constants.WRAPPER) 和 xml文件中的 ${ew.customSqlSegment} 对应
            @Param(Constants.WRAPPER) QueryWrapper<Product> wrapper);

    /**
     * @description: 首页根据商品销量进行降序排列
     * @param
     * @return
     */
    List<ProductRsp> selectBySalesVolume();

    /**
     * @description: 首页根据商品价格进行降序排列
     * @param
     * @return
     */
    List<ProductRsp> getApiProductByPrice();

    /**
     * @description: 首页根据商品最新进行降序排列
     * @param
     * @return
     */
    List<ProductRsp> getApiProductByCreateTime();

    /**
     * @description: 前台根据查询条件获取商品
     * @param
     * @return
     */
    List<ProductRsp> getProductQueryVo(@Param("apiProductQueryVo") ApiProductQueryVo apiProductQueryVo);
}
